Systems And Methods For Determining Haptic Effects For Multi-Touch Input

ABSTRACT

A system of the present disclosure may include a haptic output device configured to output a haptic effect to a touch surface; a touch sensitive input device configured to detect a first user interaction and transmit a first sensor signal, the touch sensitive input device further configured to detect a second user interaction and transmit a second sensor signal, wherein at least part of the first user interaction occurs at the same time as the second user interaction; a processor in communication with the sensor, the processor configured to: receive the first sensor signal and the second sensor signal; determine a haptic effect based in part on the first user interaction and the second user interaction; transmit a haptic signal associated with the haptic effect to the haptic output device.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to and is a continuation of U.S.application Ser. No. 14/336,548, filed on Jul. 21, 2014, and entitled“Systems And Methods For Determining Haptic Effects For Multi-TouchInput,” the entirety of which is hereby incorporated herein byreference.

FIELD OF THE INVENTION

The present invention relates to the field of user interface devices andhaptic effects. More specifically, the present invention relates todetermining a haptic effect associated with a multi-touch input.

BACKGROUND

Touch enabled devices have become increasingly popular. For instance,mobile and other devices may be configured with touch-sensitive displaysso that a user can provide input by touching portions of thetouch-sensitive display. As another example, a touch enabled surfaceseparate from a display may be used for input, such as a trackpad,mouse, or other device. Further, many of these touch enabled devicesallow for multi-touch. Some touch enabled devices make use of hapticeffects, for example, haptic effects associated with user interaction.There is a need to determine haptic effects associated with multi-touchinput.

SUMMARY

Embodiments of the present disclosure include devices configured tooutput haptic effects based on user interaction with a touch area. Thesehaptic effects may simulate one or more features in a touch area.Features may comprise, for example, changes in texture, coefficient offriction, and/or simulation of boundaries, obstacles, or otherdiscontinuities in the touch surface that can be perceived through userinteraction with the device. In some embodiments, these haptic effectsmay comprise surface based effects that are perceived through contactwith a touch surface. These haptic effects may further comprisevibrations that are felt through contact with the touch surface orhousing of the device. Embodiments of the present disclosure determinethese haptic effects based in part on multi-touch user interaction.

In one embodiment, a system of the present disclosure may comprise: ahaptic output device configured to output a haptic effect to a touchsurface; a touch sensitive input device configured to detect a firstuser interaction and transmit a first sensor signal, the touch sensitiveinput device further configured to detect a second user interaction andtransmit a second sensor signal, wherein at least part of the first userinteraction occurs at the same time as the second user interaction; aprocessor in communication with the sensor, the processor configured to:receive the first sensor signal and the second sensor signal, determinea haptic effect based in part on the first user interaction and thesecond user interaction; transmit a haptic signal associated with thehaptic effect to the haptic output device.

This illustrative embodiment is mentioned not to limit or define thelimits of the present subject matter, but to provide an example to aidunderstanding thereof. Illustrative embodiments are discussed in theDetailed Description, and further description is provided there.Advantages offered by various embodiments may be further understood byexamining this specification and/or by practicing one or moreembodiments of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure is set forth more particularly in theremainder of the specification. The specification makes reference to thefollowing appended figures.

FIG. 1A shows an illustrative system for determining haptic effects formulti-touch input;

FIG. 1B shows an external view of one embodiment of the system shown inFIG. 1A;

FIG. 1C illustrates an external view of another embodiment of the systemshown in FIG. 1A;

FIG. 2A illustrates another example embodiment for determining hapticeffects for multi-touch input;

FIG. 2B illustrates another example embodiment for determining hapticeffects for multi-touch input;

FIG. 3 depicts an illustrative system for determining haptic effects formulti-touch input:

FIG. 4 depicts another illustrative system for determining hapticeffects for multi-touch input;

FIG. 5 depicts an illustrative system for determining haptic effects formulti-touch input;

FIG. 6 depicts another illustrative system for determining hapticeffects for multi-touch input;

FIG. 7 is flow chart of steps for performing a method for determininghaptic effects for multi-touch input; and

FIG. 8 is another flow chart of steps for performing a method fordetermining haptic effects for multi-touch input.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeillustrative embodiments and to the accompanying drawings. Each exampleis provided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used in another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includemodifications and variations as come within the scope of the appendedclaims and their equivalents.

Illustrative Example of Determining Haptic Effects for Multi-Touch Input

One illustrative embodiment of the present disclosure comprises acomputing system such as a smartphone, tablet, or portable music device.The computing system can include and/or may be in communication with oneor more sensors, such as an accelerometer, as well as sensors (e.g.,optical, resistive, or capacitive) for determining a location of a touchrelative to a display area corresponding in this example to the screenof the device.

In the illustrative device the sensors can detect multi-touch. Forexample, the multi-touch may comprise a user gesture of more than onefinger, e.g., a two figure pinch or more complex user interaction suchas interaction involving two hands. For example, the illustrative devicemay comprise a touch-screen display configured to detect multi-touchinteraction.

The illustrative device is further configured to output haptic effectsin response to user interaction. For example, the illustrative devicemay comprise one or more haptic output devices such as actuators and/ordevices configured to output haptic effects. For example, a hapticeffect may be configured to change the coefficient of friction perceivedby the user when moving his or her finger across the surface of thedevice. In one such embodiment, as the user's finger moves across thesurface, a vibration, electric field, or other effect may be output tochange the coefficient of friction felt by the user. Depending on howthe friction is varied, the user may perceive a feature in the touchsurface that would not otherwise be perceived in the same manner (or atall) if the surface friction were not varied. As a particular example,the friction may be varied so that the user perceives a bump, border, orother obstacle corresponding to an edge of a feature, for example, anon-screen widget such as a virtual button, slider, knob, or otherinterface. In some embodiments, this widget may be configured to controla system associated with the widget. For example, in one embodiment, thewidget may comprise a virtual knob configured to control an HVAC system.Thus, by interacting with the virtual knob, a user may be able to adjustsettings of the HVAC system.

The processor of the illustrative device is configured to determinehaptic effects based on multi-touch interaction. Thus, in someembodiments, the processor determines the haptic effect based in part onthe multiple user contacts with the device, e.g., multiple contacts witha touchscreen display. For example, in the illustrative device, if thetouchscreen detects a two-finger swipe, the processor may determine ahaptic effect based in part on both points of contact. Further, in theillustrative device, if the touchscreen detects a more complexinteraction involving many points of contact, the processor maydetermine a haptic effect based in part on each of the points ofcontact. Further, in some embodiments the device may comprise multipledifferent haptic output devices (e.g., a vibrating actuator and an ESFactuator). In such an embodiment, the processor may be configured todetermine which of the haptic output devices to use to output the hapticeffect. For example, the processor may determine that the haptic effectshould be output by multiple haptic output devices.

In some embodiments, the processor may determine the effect based onmultiple factors associated with the multi-touch. For example, in someembodiments the multi-touch may be associated with features in agraphical user interface (e.g., buttons, keys, or graphical widgets inthe user interface). In such an embodiment, the processor may determinethe haptic effect based in part on these features. For example, in oneembodiment, a finger may touch one virtual feature (e.g., a button)while the other finger touches another virtual feature (e.g., a slider).In such an embodiment, the processor may determine the haptic effectbased in part on these features. For example, the processor maydetermine that the button overrides the slider and thus output a hapticeffect associated with the button.

Alternatively, the processor may determine that a specific haptic effecthas a higher priority than another haptic effect, and thus output onlythe high priority effect. For example, the processor may determine thata haptic effect configured to simulate the edge of an object in thegraphical user interface has a higher priority than other effects, andthus output only the edge effect. Alternatively, the processor maydetermine that only the most intense effect should be output. Thus, insome embodiments, the processor may determine a low intensity vibrationand a high intensity vibration, but output only the high intensityvibration. Further, in some embodiments, the processor may determinewhich component of the multitouch is most likely to feel the effect,e.g., which of the user's fingers is most likely to feel the effect. Insuch an embodiment, the processor may output the haptic effectassociated with that interaction of that finger.

Further, in some embodiments, the processor may determine the hapticeffect based on information associated with the multi-touch. Forexample, the processor may determine the haptic effect based on the userinteraction that occurred first. In some embodiments, the processor maydetermine the haptic effect based on the most active user interaction(the interaction with the most movement), least active user interaction,or the user interaction applying the most pressure.

In some embodiments, the processor may determine a haptic effectassociated with each user interaction associated with the multi-touch,but output only one haptic effect. So, for example, the processor maydetermine an average of the haptic effects and output that average.Further, in some embodiments, the processor may determine which of thehaptic effects is the most intense or has the highest priority. Further,in some embodiments, the processor may determine a superposition of theuser interactions associated with the multi-touch. For example, theprocessor may determine a haptic effect associated with each of thepoints of contact. The processor may then apply a weighting to each ofthese haptic effects and combine them to determine a haptic effect tooutput.

In still other embodiments, the user may assign a preference for how thehaptic effect should be determined, e.g., assign a specific effect orassign a specific way of determining the haptic effect. In still otherembodiments, the processor may determine to output no haptic effects.For example, the processor may determine that the haptic effect would beconfusing or misleading to the user.

In another embodiment, the processor may determine that the userinteraction is associated with two different users (e.g., a first userand a second user). In such an embodiment the processor may determine ahaptic effect associated with just one of the user interactions (e.g.,an effect associated with only the first user). In another embodiment,the processor may determine a haptic effect associated with both userinteractions (e.g., a haptic effect associated with the interactions ofboth the first user and the second user). In still another embodiment,the processor may determine that no haptic effect should be output.

As will be discussed in further detail below, haptic effects associatedwith a multi-touch may be determined in any number of ways. Further, asdiscussed below, these methods may be used to provide many differenttypes of information to the user.

Illustrative Systems for Determining Haptic Effects for Multi-TouchInput

FIG. 1A shows an illustrative system 100 for determining haptic effectsfor multi-touch input. In this example, system 100 comprises a computingdevice 101 having a processor 102 interfaced with other hardware via bus106. A memory 104, which can comprise any suitable tangible (andnon-transitory) computer-readable medium such as RAM, ROM, EEPROM, orthe like, embodies program components that configure operation of thecomputing device. In this example, computing device 101 further includesone or more network interface devices 110, input/output (I/O) interfacecomponents 112, and additional storage 114.

Network device 110 can represent one or more of any components thatfacilitate a network connection. Examples include, but are not limitedto, wired interfaces such as Ethernet, USB, IEEE 1394, and/or wirelessinterfaces such as IEEE 802.11, Bluetooth, or radio interfaces foraccessing cellular telephone networks (e.g., transceiver/antenna foraccessing a CDMA, GSM, UMTS, or other mobile communications networks).

I/O components 112 may be used to facilitate connection to devices suchas one or more displays, keyboards, mice, speakers, microphones, and/orother hardware used to input data or output data. Storage 114 representsnonvolatile storage such as magnetic, optical, or other storage mediaincluded in device 101.

System 100 further includes a touch surface 116, which, in this example,is integrated into device 101. Touch surface 116 represents any surfacethat is configured to sense tactile input of a user. One or more sensors108 are configured to detect a touch in a touch area when one or moreobjects (e.g., body parts such as fingers or hands or components such asa stylus or brush) contact a touch surface and provide appropriate datafor use by processor 102. One or more sensors 108 may be configured tosense a single touch or a multitouch and the pressure of a single touchor a multitouch (including the pressure of each touch within themultitouch). Any suitable number, type, or arrangement of sensors can beused. For example, resistive and/or capacitive sensors may be embeddedin touch surface 116 and used to determine the location of a touch andother information, such as pressure. In some embodiments, pressuresensors may be used to detect multitouch location or pressure. Asanother example, optical sensors with a view of the touch surface may beused to determine the touch position. In some embodiments, one or moresensors 108 may be configured to detect a multitouch associated withmultiple locations on a device. For example, one or more sensors 108 maybe configured to detect a touch on a touch surface as well as a touch ona housing of a device. Further, one or more sensors 108 may beconfigured to detect the pressure associated with each of these touches.

In some embodiments, sensor 108 and touch surface 116 may comprise atouch-screen or a touch-pad. For example, in some embodiments, touchsurface 116 and sensor 108 may comprise a touch-screen mounted overtopof a display configured to receive a display signal and output an imageto the user. In other embodiments, the sensor 108 may comprise an LEDdetector. For example, in one embodiment, touch surface 116 may comprisean LED finger detector mounted on the side of a display. In someembodiments, the processor is in communication with a single sensor 108,in other embodiments, the processor is in communication with a pluralityof sensors 108, for example, a first touch-screen and a second touchscreen. The sensor 108 is configured to detect user interaction, andbased on the user interaction, transmit signals to processor 102. Insome embodiments, sensor 108 may be configured to detect multipleaspects of the user interaction. For example, sensor 108 may detect thespeed and pressure of a user interaction, and incorporate thisinformation into the interface signal.

In this example, a haptic output device 118 in communication withprocessor 102 is coupled to touch surface 116. In some embodiments,haptic output device 118 is configured to output a haptic effectsimulating a texture on the touch surface in response to a hapticsignal. Additionally or alternatively, haptic output device 118 mayprovide vibrotactile haptic effects that move the touch surface in acontrolled manner. Some haptic effects may utilize an actuator coupledto a housing of the device, and some haptic effects may use multipleactuators in sequence and/or in concert. For example, in someembodiments, a surface texture may be simulated or the perceivedcoefficient of friction may be varied (e.g., reduced or increased) byvibrating the surface at different frequencies. In such an embodiment,haptic output device 118 may comprise one or more of, for example, apiezoelectric actuator, an electric motor, an electromagnetic actuator,a voice coil, a shape memory alloy, an electro-active polymer, asolenoid, an eccentric rotating mass motor (ERM), or a linear resonantactuator (LRA). In some embodiments, haptic output device 118 maycomprise a plurality of actuators, for example, an ERM and an LRA.

Although a single haptic output device 118 is shown here, embodimentsmay use multiple haptic output devices of the same or different type tooutput different types of effects or combinations of effects, forexample, vibrations, pops, clicks, surface deformations, and/or surfacebased effects such as variations in the coefficient of friction orsimulated surface textures. For example, in one embodiment, apiezoelectric actuator may be used to displace some or all of touchsurface 116 vertically and/or horizontally at ultrasonic frequencies,such as by using an actuator moving at frequencies greater than 20 kHz.In some embodiments, multiple actuators such as eccentric rotating massmotors and linear resonant actuators can be used alone or in concert toprovide vibrations or other haptic effects.

In still other embodiments, haptic output device 118 may useelectrostatic attraction, for example by use of an electrostatic surfaceactuator, to simulate a texture on the surface of touch surface 116 orto vary the coefficient of friction the user feels when moving his orher finger across touch surface 116. For example, in one embodiment,haptic output device 118 may comprise an electrovibrotactile display orany other device that applies voltages and currents instead ofmechanical motion to generate a haptic effect. In such an embodiment,the electrostatic actuator may comprise a conducting layer and aninsulating layer. In such an embodiment, the conducting layer may be anysemiconductor or other conductive material, such as copper, aluminum,gold, or silver. And the insulating layer may be glass, plastic,polymer, or any other insulating material. Furthermore, the processor102 may operate the electrostatic actuator by applying an electricsignal to the conducting layer. The electric signal may be an AC signalthat, in some embodiments, capacitively couples the conducting layerwith an object near or touching touch surface 116. In some embodiments,the AC signal may be generated by a high-voltage amplifier.

In other embodiments the capacitive coupling may simulate a frictioncoefficient or texture on the surface of the touch surface 116. Forexample, in one embodiment, the surface of touch surface 116 may besmooth, but the capacitive coupling may produce an attractive forcebetween an object near the surface of touch surface 116. In someembodiments, varying the levels of attraction between the object and theconducting layer can vary the simulated texture on an object movingacross the surface of touch surface 116. Furthermore, in someembodiments, an electrostatic actuator may be used in conjunction withtraditional actuators to vary the simulated texture on the surface oftouch surface 116 or output other effects. For example, the actuatorsmay vibrate to simulate a change in the texture of the surface of touchsurface 116, while at the same time; an electrostatic actuator maysimulate a different texture on the surface of touch surface 116.

One of ordinary skill in the art will recognize that, in addition tovarying the coefficient of friction, other techniques or methods can beused to simulate a texture on a surface. For example, in someembodiments, a texture may be simulated or output using a flexiblesurface layer configured to vary its texture based upon contact from asurface reconfigurable haptic substrate (including, but not limited to,e.g., fibers, nanotubes, electroactive polymers, piezoelectric elements,or shape memory allows) or a magnetorheological fluid. In anotherembodiment, surface texture may be varied by raising or lowering one ormore surface features, for example, with a deforming mechanism, air orfluid pockets, local deformation of materials, resonant mechanicalelements, piezoelectric materials, micro-electromechanical systems(“MEMS”) elements, thermal fluid pockets, MEMS pumps, variable porositymembranes, or laminar flow modulation.

In some embodiments, an electrostatic actuator may be used to generate ahaptic effect by stimulating parts of the body or objects near ortouching touch surface 116. For example, in some embodiments, anelectrostatic actuator may stimulate the nerve endings in the skin of auser's finger or components in a stylus that can respond to theelectrostatic actuator. The nerve endings in the skin, for example, maybe stimulated and sense the electrostatic actuator (e.g., the capacitivecoupling) as a vibration or some more specific sensation. For example,in one embodiment, a conducting layer of an electrostatic actuator mayreceive an AC voltage signal that couples with conductive parts of auser's finger. As the user touches the touch surface 116 and moves hisor her finger on the touch surface, the user may sense a texture ofprickliness, graininess, bumpiness, roughness, stickiness, or some othertexture.

Turning to memory 104, illustrative program components 124, 126, and 128are depicted to illustrate how a device can be configured in someembodiments to determine haptic effects for multi-touch input. In thisexample, a detection module 124 configures processor 102 to monitortouch surface 116 via sensor 108 to determine a position of one or moretouches. For example, module 124 may sample sensor 108 in order to trackthe presence or absence of a touch (or touches) and, if a touch ispresent, to track one or more of the location, path, velocity,acceleration, pressure and/or other characteristics of the touch (ortouches) over time.

Haptic effect determination module 126 represents a program componentthat analyzes data regarding touch characteristics to select a hapticeffect to generate. Particularly, module 126 may comprise code thatdetermines a haptic effect to output. As discussed in further detailbelow, this determination may be made based in part on a multi-touch andcharacteristics associated with the multi-touch, such as the location ofcontact, number of contacts, time of contact, pressure of contact,activity of contact, or features associated with haptic effects, e.g.,priority of effect, intensity of effect, or combinations of variousdetermined haptic effects (e.g., the average or superposition of theeffect). For example, some or all of the area of touch surface 116 maybe mapped to a graphical user interface. Different haptic effects may beselected based on the location of each touch in order to simulate thepresence of a feature by simulating a texture on a surface of touchsurface 116 so that the feature is felt when a correspondingrepresentation of the feature is seen in the interface. However, hapticeffects may be provided via touch surface 116 even if a correspondingelement is not displayed in the interface (e.g., a haptic effect may beprovided if a boundary in the interface is crossed, even if the boundaryis not displayed).

Haptic effect generation module 128 represents programming that causesprocessor 102 to generate and transmit a haptic signal to actuator 118to generate the selected haptic effect. For example, generation module128 may access stored waveforms or commands to send to haptic outputdevice 118. As another example, haptic effect generation module 128 mayreceive a desired type of texture and utilize signal processingalgorithms to generate an appropriate signal to send to haptic outputdevice 118. As a further example, a desired texture may be indicatedalong with target coordinates for the texture and an appropriatewaveform sent to one or more actuators to generate appropriatedisplacement of the surface (and/or other device components) to providethe texture. Some embodiments may utilize multiple haptic output devicesin concert to simulate a feature. For instance, a variation in texturemay be used to simulate crossing a boundary between a button on aninterface while a vibrotactile effect simulates the response when thebutton is pressed.

A touch surface may or may not overlay (or otherwise correspond to) adisplay, depending on the particular configuration of a computingsystem. In FIG. 1B, an external view of a computing system 100B isshown. Computing device 101 includes a touch enabled display 116 thatcombines a touch surface and a display of the device. The touch surfacemay correspond to the display exterior or one or more layers of materialabove the actual display components.

FIG. 1C illustrates another example of a touch enabled computing system100C in which the touch surface does not overlay a display. In thisexample, a computing device 101 comprises a touch surface 116 which maybe mapped to a graphical user interface provided in a display 122 thatis included in computing system 120 interfaced to device 101. Forexample, computing device 101 may comprise a mouse, trackpad, or otherdevice, while computing system 120 may comprise a desktop or laptopcomputer, set-top box (e.g., DVD player, DVR, cable television box), oranother computing system. As another example, touch surface 116 anddisplay 122 may be disposed in the same device, such as a touch enabledtrackpad in a laptop computer comprising display 122. Whether integratedwith a display or otherwise, the depiction of planar touch surfaces inthe examples herein is not meant to be limiting. Other embodimentsinclude curved or irregular touch enabled surfaces that are furtherconfigured to provide surface-based haptic effects.

FIGS. 2A-2B illustrate an example embodiment of systems and methods fordetermining haptic effects for multi-touch input. FIG. 2A is a diagramillustrating an external view of a system 200 comprising a computingdevice 201 that comprises a touch enabled display 202. FIG. 2B shows across-sectional view of device 201. Device 201 may be configuredsimilarly to device 101 of FIG. 1A, though components such as theprocessor, memory, sensors, and the like are not shown in this view forpurposes of clarity.

As can be seen in FIG. 2B, device 201 comprises a plurality of hapticoutput devices 218 and an additional haptic output device 222. Hapticoutput device 218-1 may comprise an actuator configured to impartvertical force to display 202, while 218-2 may move display 202laterally. In this example, the haptic output devices 218, 222 arecoupled directly to the display, but it should be understood that thehaptic output devices 218, 222 could be coupled to another touchsurface, such as a layer of material on top of display 202. Furthermoreit should be understood that one or more of haptic output devices 218 or222 may comprise an electrostatic actuator, as discussed above.Furthermore, haptic output device 222 may be coupled to a housingcontaining the components of device 201. In the examples of FIGS. 2A-2B,the area of display 202 corresponds to the touch area, though theprinciples could be applied to a touch surface completely separate fromthe display.

In one embodiment, haptic output devices 218 each comprise apiezoelectric actuator, while additional haptic output device 222comprises an eccentric rotating mass motor, a linear resonant actuator,or another piezoelectric actuator. Haptic output device 222 can beconfigured to provide a vibrotactile haptic effect in response to ahaptic signal from the processor. The vibrotactile haptic effect can beutilized in conjunction with surface-based haptic effects and/or forother purposes. For example, each actuator may be used in conjunction tosimulate a texture on the surface of display 202.

In some embodiments, either or both haptic output devices 218-1 and218-2 can comprise an actuator other than a piezoelectric actuator. Forexample, haptic output devices 218-1 and 218-2 may comprise apiezoelectric actuator, an electromagnetic actuator, an electroactivepolymer, a shape memory alloy, a flexible composite piezo actuator(e.g., an actuator comprising a flexible material), electrostatic,and/or magnetostrictive actuators, for example. Additionally, hapticoutput device 222 is shown, although multiple other haptic outputdevices can be coupled to the housing of device 201 and/or haptic outputdevices 222 may be coupled elsewhere. Device 201 may feature multiplehaptic output devices 218-1/218-2 coupled to the touch surface atdifferent locations, as well.

Illustrative Systems for Determining Haptic Effects for Multi-TouchInput

Turning now to FIG. 3, system 300 is an illustrative example ofdetermining haptic effects for multi-touch input. FIG. 3 is a diagramillustrating an external view of a system 300 comprising a computingdevice 301 that comprises a touch enabled display 302. In someembodiments, computing device 301 may comprise a multifunctioncontroller. For example, a controller for use in a kiosk, ATM,automobile, airplane, thermostat, or other type of computing device. Inother embodiments, computing device 301 may comprise a smartphone,tablet, or other type of computer. Further, in some embodiments,computing device 301 may comprise one or more virtual controllers ondisplay 302.

As shown in FIG. 3, touch enabled display 302 is configured to detect amulti-touch. Thus, touch enabled display 302 is configured to detectmore than one user interaction occurring at substantially the same time.These multi-touch interactions may control many different operations ofcomputing device 301. For example, multi-touch interactions may enablethe user to: zoom in, zoom out, change to different screens, pan throughimages, interact with specific interfaces (e.g., keyboards, buttons,sliders, or other interfaces), interact with gaming environments, orperform other multi-touch interactions enabled by software executing oncomputing device 301.

FIG. 3 comprises three examples of multi-touch interactions: four fingerpinch 304, two finger pinch 306, and two finger reverse pinch 308. Auser may make a four finger pinch 304 gesture by pinching four fingerstogether on the surface of touch enabled display 302. In someembodiments, a four finger pinch may cause computing device 301 toperform operations such as returning to a home screen. A user may maketwo finger pinch 306 by pinching together two fingers, e.g., a thumb andforefinger. In some embodiments, a two finger pinch may cause computingdevice 301 to perform operations such as zooming out from an image, webpage, video, or other content. A user may make two finger reverse pinch308 by pushing apart two fingers, e.g., a thumb and forefinger. In someembodiments, a two finger reverse pinch may cause computing device 301to perform operations such as zooming in on an image, web page, video,or other content.

As described in further detail above and below, as the user makes amulti-touch gesture on the touch enabled display 302 computing device301 determines one or more haptic effects. These haptic effects arebased on factors associated with the multi-touch. Computing device 301then outputs these haptic effects via one or more haptic output devices.These haptic effects may serve as confirmation of receipt of thegesture. Alternatively, the haptic effects may identify otherinformation to the user, e.g., that the user's finger has passed aboundary, that a specific operation has started, that the displayinformation has changed, or some other information associated withcomputing device 301.

Turning now to FIG. 4, system 400 is an illustrative example ofdetermining haptic effects for multi-touch input. FIG. 4 is a diagramillustrating an external view of a system 400 comprising a computingdevice 401 that comprises a touch enabled display 402. As with computingdevice 301, described with regard to FIG. 3, in some embodiments,computing device 401 may comprise a multifunction controller. Forexample, a controller for use in a kiosk, ATM, automobile, airplane,thermostat, or other type of computing device. In other embodiments,computing device 401 may comprise a smartphone, tablet, or other type ofcomputer. In one embodiment, computing device 401 may be configured tocontrol a music player. In such an embodiment, computing device 401 maycomprise one or more virtual controllers on display 402.

These controllers may be associated with functions of a music player,thus the user may interact with the controllers to control functions ofthe music player. For example, in the embodiment shown in FIG. 4, thecomputing device 401 comprises one or more widgets or virtualinterfaces, shown in FIG. 4 as controller 404 and controller 406. Insuch an embodiment, controller 404 may comprise an image of a knobconfigured to control settings of the music player, e.g., a knob to tuneto a radio station, select a new song, or adjust the volume. Similarly,controller 406 may comprise an image of a slider configured to adjustanother feature of the music player. In other embodiments, computingdevice 401 may comprise a plurality of other virtual controllers ontouch enabled display, each of the virtual controllers configured tocontrol other aspects of a system, for example, a music player or othersystem.

In some embodiments, the computing device 401 may output a haptic effectto allow the user to identify the available functions without having tovisually focus on touch enabled display 402. For example, the backgroundof touch enabled display 402, knob 404, and slider 406 may each comprisea separate associated haptic effect. Computing device 401 may outputthis haptic effect to identify the location the user is touching,without the user having to visually focus on touch enabled display 402.The computing device 401 is further configured to determine a hapticeffect based on a multi-touch gesture on touch enabled display 402(e.g., when the user interacts with knob 404 and slider 406 at the sametime).

The computing device 401 may determine haptic effects based on manycharacteristics of the multi-touch. For example, in one embodiment, thecomputing device 401 may determine the haptic effect based on the firsticon the user touches. For example, knob 404 and slider 406 may eachcomprise a different associated haptic effect. Computing device 401 mayoutput the haptic effect associated with the first icon touched by theuser. Thus, if the computing device 401 determines that the user touchedthe knob 404 before slider 406, computing device 401 will output thehaptic effect associated with knob 404.

In another embodiment, computing device 401 may determine a priorityassociated with each icon and output the haptic effect associated withthe icon that has the highest priority. For example, in one embodiment,knob 404 may comprise a priority of 3 and slider 406 may comprise apriority of 2. Thus, computing device may output the haptic effectassociated with slider 406 rather than the haptic effect associated withknob 404. In some embodiments, these priorities may be set by userpreference. For example, the computing device 401 may compriseprogramming that allows the user to set a priority value for each icon.Further, in some embodiments the user may be able to assign specifichaptic effects to each icon.

In still other embodiments, the computing device 401 may determine twoseparate haptic effects, but output only one of the two haptic effects.For example, in some embodiments the processor may determine the mostintense haptic effect and output only that effect. Alternatively, insome embodiments the processor may output the haptic effect comprisingthe highest associated priority. For example, each haptic effect maycomprise its own priority. In such an embodiment, these priorities mayhave been assigned by the designer or based on user preferences.

In still other embodiments, the computing device 401 may determine athird haptic effect based on the two haptic effects and output the thirdhaptic effect. For example, in some embodiments the third haptic effectmay comprise an average of the two haptic effects. Further, in someembodiments, the haptic effect may comprise a superposition of the twoeffects. This superposition may comprise a weighted combination orweighted average of the two effects. For example, the computing device401 may assign a weight to each haptic effect (e.g., weights of 2, 1,0.5, 0.25, or 0). The computing device 401 may then determine a thirdhaptic effect that is the combination of the two weighted haptic effectsor the average of the two weighted effects.

Further, in some embodiments touch enabled display 402 may receive athird, fourth fifth, or more user interaction, e.g., a multi-touch withmany additional contacts. Computing device 401 may be configured todetermine haptic effects associated with each of these multi-touches,e.g., based on the first interactions of the multi-touch, theinteraction with the highest priority, or determine effects based on acombination of the effect associated with each interaction.

In some embodiments, computing device 401 may comprise a plurality ofhaptic output devices, e.g., a vibrating actuator and an ESF actuator.In such an embodiment, computing device 401 may be configured todetermine the haptic effect based in part on the haptic output devices.For example, in one embodiment, each haptic output device may comprisean associated priority. For example, in some embodiments, haptic effectsoutput by the ESF actuator may comprise a higher priority than otherhaptic effects. In other embodiments, computing device 401 may consideradditional characteristics. For example, in some embodiments, ESF basedhaptic effects are detectable only when the user is in motion (e.g.,moving over the actuated surface). In such an embodiment, computingdevice 401 may determine that haptic effects to be output by the ESFactuator have a low priority, or should not be output, if the userinteraction is not moving on a surface or the movement is below acertain threshold.

Further, in some embodiments the computing device may determine thehaptic effect based on the haptic output device and the location ofcontact. For example, in some embodiments the computing device maycomprise a housing with shape deformation functionality and an ESFactuator. In such an embodiment, the computing device may determine ahaptic effect configured to deform the housing only if the user is incontact with the housing. Similarly, the computing device may determinean ESF based haptic effect only if the user is interacting with a touchsurface coupled to the ESF actuator. In other embodiments, the computingdevice may assign higher or lower priorities to haptic effects andhaptic output devices based on similar determinations.

Turning now to FIG. 5, system 500 is an illustrative example ofdetermining haptic effects for multi-touch input. FIG. 5 is a diagramillustrating an external view of a system 500 comprising a computingdevice 501 that comprises a touch enabled display 502. As with computingdevice 301, described with regard to FIG. 3, in some embodiments,computing device 501 may comprise a multifunction controller configuredto control a plurality of different types of devices or a mobile devicesuch as a tablet, smartphone, or other handheld device.

As described above, touch enabled display 502 is configured to detect amulti-touch. Further, computing device 501 is configured to determine ahaptic effect based in part on the multi-touch. FIG. 5 shows two userinteractions 504 and 506 on the surface of touch enabled display 502. Asshown in FIG. 5, user interaction 504 is a relatively inactive userinteraction, e.g., an interaction with relatively little movement (shownas a short line). Further, user interaction 506 is a relatively activeuser interaction, e.g., an interaction with a relatively large amount ofuser movement (shown as a longer line).

In the embodiment shown in FIG. 5, computing device 501 may determinethe haptic effect based on the more active user interaction 506. Thus,computing device 501 may determine the haptic effect based on thisspecific interaction, e.g., the location of touch enabled display 502associated with this interaction or other information associated withinteraction 506.

In some embodiments haptic effects generated using ElectrostaticFriction (ESF) may be felt only when in motion, e.g., when the finger ismoving across the touch surface. Thus, in some embodiments, ESF basedhaptic effects may be output only when the user is moving.Alternatively, in some embodiments, ESF effects may be assigned a highpriority if the user is currently moving and a low priority if the useris not moving.

Turning now to FIG. 6, system 600 is an illustrative example ofdetermining haptic effects for multi-touch input. FIG. 6 is a diagramillustrating an external view of a system 600 comprising a computingdevice 601 that comprises a touch enabled display 602. As with computingdevice 301, described with regard to FIG. 3, in some embodiments,computing device 601 may comprise a multifunction controller configuredto control a plurality of different types of devices or a mobile devicesuch as a tablet, smartphone, or other handheld device.

As described above, touch enabled display 602 is configured to detect amulti-touch. Further, computing device 601 is configured to determine ahaptic effect based in part on the multi-touch. FIG. 6 shows two userinteractions 604 and 606 on the surface of touch enabled display 602. Asshown in FIG. 6, user interaction 604 is a relatively low pressure userinteraction, e.g., an interaction wherein the user has a relatively softtouch on the surface of touch enabled display 602 (shown as a smallerellipse). Further, user interaction 606 is a relatively high pressureuser interaction, e.g., an interaction wherein the user applies arelatively large amount of pressure to the surface of touch enableddisplay 602 (shown as a larger ellipse).

In the embodiment shown in FIG. 6, computing device 601 may determinethe haptic effect based on the higher pressure user interaction 606.Thus, computing device 601 may determine the haptic effect based on thisspecific interaction, e.g., the location of touch enabled display 602associated with this interaction or other information associated withinteraction 606.

In some embodiments, the processor may determine that the userinteraction is associated with two different users (e.g., a first userand a second user). In such an embodiment the processor may determine ahaptic effect associated with just one of the user interactions (e.g.,an effect associated with only the first user). In another embodiment,the processor may determine a haptic effect associated with both userinteractions (e.g., a haptic effect associated with the interactions ofboth the first user and the second user). In some embodiments, thedevice may comprise two or more haptic output devices and the processormay assign one haptic output device to one user and another hapticoutput device to another user (e.g., interaction from user 1 will beassociated with effects from an ESF actuator and interaction from user 2will be associated with effects from a vibrating actuator). In stillanother embodiment, the processor may determine that in such anembodiment no haptic effect should be output.

In some embodiments, the processor may determine the haptic effect basedin part on how the user will feel the effect. For example, in someembodiments the computing device may comprise only a vibrating actuator.In such an embodiment, the processor may determine a haptic effectassociated with user interaction with the housing (e.g., gripping thehousing) has a higher priority than user interaction with a touchsurface because the haptic effect will be more strongly felt through thehand holding the device. Similarly, a computing device that comprisesonly an ESF actuator may assign a higher priority to user interactionwith a touch surface because the haptic effect will be perceived throughinteraction with the touch surface.

In still other embodiments, the device may comprise a plurality ofhaptic output devices. In such an embodiment, the processor may beconfigured to determine haptic effects to be output by each of theplurality of haptic output devices simultaneously. For example, theprocessor may determine a haptic effect associated with each userinteraction and each haptic output device. The processor may weightthese effects and interactions as discussed herein. The processor maythen cause each haptic output device to output the determined hapticeffect. Thus, the haptic effect associated with the multitouch maycomprise a composite effect generated by multiple haptic output devices.

Illustrative Methods for Determining Haptic Effects for Multi-TouchInput

FIG. 7 is a flowchart showing an illustrative method 700 for determininghaptic effects for multi-touch input. In some embodiments, the steps inFIG. 7 may be implemented in program code that is executed by aprocessor, for example, the processor in a general purpose computer, amobile device, or a server. In some embodiments, these steps may beimplemented by a group of processors. The steps below are described withreference to components described above with regard to system 100 shownin FIG. 1.

The method 700 begins at step 702 when a sensor 108 transmits a firstsensor signal associated with a first user interaction. Sensor 108 maycomprise one or more of a plurality of sensors known in the art, forexample, resistive and/or capacitive sensors may be embedded in touchsurface 116 and used by processor 102 to determine the location of atouch and other information, such as pressure. As another example,optical sensors with a view of the touch surface may be used todetermine the touch position. In still other embodiments, sensors 108and touch surface 116 may comprise a touch screen display. Further, upondetecting a first interaction, sensors 108 may send a signal associatedwith that interaction to processor 102. In some embodiments, the sensorsignal may comprise the location of the user interaction. For example alocation on the surface of a touch surface 116. Furthermore, in someembodiments, this location may be associated with a virtual interface or“widget” of the type described above. Similarly, in some embodiments,the sensor signal may comprise data associated with the time of contact,speed, pressure, or force of the user interaction. For example, thesensor signal may indicate how fast the user's finger is moving, orwhether the user is pressing with force onto touch surface 116.

Next, sensor 108 transmits a second sensor signal associated with asecond user interaction 704. In some embodiments the first userinteraction and the second user interaction may occur at substantiallythe same time. Sensor 108 may comprise one or more of a plurality ofsensors known in the art, for example, resistive and/or capacitivesensors may be embedded in touch surface 116 and used to determine thelocation of a touch and other information, such as pressure. As anotherexample, optical sensors with a view of the touch surface may be used todetermine the touch position. In still other embodiments, sensors 108and touch surface 116 may comprise a touch screen display. Further, upondetecting a first interaction, sensors 108 may send a signal associatedwith that interaction to processor 102. In some embodiments, the sensorsignal may comprise the location of the user interaction. For example alocation on the surface of a touch surface 116. Furthermore, in someembodiments, this location may be associated with a virtual interface or“widget” of the type described above. Similarly, in some embodiments,the sensor signal may comprise data associated with the time of contact,speed, pressure, or force of the user interaction. For example, thesensor signal may indicate how fast the user's finger is moving, orwhether the user is pressing with force onto touch surface 116.

Next the processor 102 receives the first and second sensor signals 706.As described above, the processor may receive the sensor signals from asingle sensor 108 or a plurality of different sensors configured tomeasure different types of user interaction (e.g., movement sensors,inclination sensors, touch sensors, buttons, sliders, or other types ofsensors).

The method continues when processor 102 determines a haptic effect basedin part on the first user interaction and the second user interaction708. The processor may rely on programming contained in haptic effectdetermination module 126 to select or determine the haptic effect. Forexample, the processor 102 may access drive signals stored in memory 104and associated with particular haptic effects. As another example, theprocessor 102 may generate a signal by accessing a stored algorithm andinputting parameters associated with an effect. For example, analgorithm may output data for use in generating a drive signal based onamplitude and frequency parameters. As another example, a haptic signalmay comprise data sent to haptic output device 118 to be decoded byhaptic output device 118. For instance, the haptic output device 118 mayitself respond to commands specifying parameters such as amplitude andfrequency.

In some embodiments, the haptic effect may be one of a plurality ofavailable textures. For example, the plurality of textures may compriseone or more of the textures of: water, grass, ice, metal, sand, gravel,brick, fur, leather, skin, fabric, rubber, leaves, or any otheravailable texture, for example, a texture associated with explosions orfire. In some embodiments, the texture may be associated with a featureof a user interface, such as a widget displayed to the user. Forexample, in one embodiment, a specific texture may be associated with avirtual dial, for example, the texture of sand. Further, in such anembodiment, as the user interacts with the virtual dial, for example, bymodifying the angular rotation of the virtual dial, the processor 102may output a different texture. For example, as the user turns thevirtual dial, the haptic effect may be configured to simulate a changein the coarseness of the sand. Thus, as the user turns the virtual dialin one direction, the user may feel a haptic effect that simulatesgravel, and as the user turns the virtual dial the other direction theuser may feel a haptic effect that simulates the feeling of a powder. Instill other embodiments the haptic effect may comprise a vibration or asurface based effect configured to vary the friction the user perceiveswhen interacting with the surface of a touch enabled display or othertouch surface.

In some embodiments the processor may determine the haptic effect basedon the operations described with regard to FIG. 8 and flow chart 800. Insome embodiments, the processor 102 may determine the effect based onmultiple factors associated with the multi-touch. For example, in someembodiments the multi-touch may be associated with features in agraphical user interface (e.g., buttons, keys, or graphical widgets inthe user interface). In such an embodiment, the processor may determinethe haptic effect based in part on these features. For example, in oneembodiment, a finger may touch one virtual feature (e.g., a button)while the other finger touches another virtual feature (e.g., abackground area). In such an embodiment, the processor may determine thehaptic effect based in part on these features. For example, theprocessor 102 may determine that the button overrides the background,and thus output a haptic effect associated with the button.

Alternatively, the processor 102 may determine that a specific hapticeffect has a higher priority than another haptic effect, and thus outputonly the high priority effect. For example, the processor 102 maydetermine that a haptic effect configured to simulate the edge of anobject in the graphical user interface has a higher priority than othereffects, and thus output only the edge effect. Alternatively, theprocessor 102 may determine that only the most intense effect should beoutput. Thus, in some embodiments, the processor may determine a lowintensity vibration and a high intensity vibration, but output only thehigh intensity vibration.

Further, in some embodiments, the processor 102 may determine the hapticeffect based on information associated with the multi-touch. Forexample, the processor 102 may determine the haptic effect based on theuser interaction that occurred first. Further, as discussed above, insome embodiments, the processor may determine the haptic effect based onthe most active user interaction (the interaction with the mostmovement), least active user interaction, or the user interactionapplying the most pressure.

Then, at step 710, the processor 102 transmits a haptic signalassociated with the haptic effect to haptic output device 118, whichoutputs the haptic effect. In some embodiments, processor 102 outputs ahaptic signal configured to cause haptic output device 118 to generatethe haptic effect. In some embodiments haptic output device 118 maycomprise traditional actuators such as piezoelectric actuators orelectric motors coupled to touch surface 116 or other components withincomputing device 101. In other embodiments haptic output device 118 maycomprise one or more electrostatic actuators configured to simulatetextures or vary the perceived coefficient of friction on touch surface116 using electrostatic fields.

In some embodiments sensor 108 may detect a third, fourth fifth, or moreuser interaction, e.g., a multi-touch with many additional contacts.Processor 102 may comprise programming to determine haptic effects basedin part on each of these components of a multi-touch interaction. Forexample, processor 102 may determine the priority of each touchregardless of the number of touches or the first interaction regardlessof the number of other interactions associated with the multi-touch.Further, in some embodiments, processor 102 may determine a hapticeffect associated with each interaction and then output a differenthaptic effect based in part on each of these effects.

Turning now to FIG. 8, FIG. 8 is a flowchart showing an illustrativemethod 800 for determining haptic effects for multi-touch input. In someembodiments, the steps in FIG. 8 may be implemented in program code thatis executed by a processor, for example, the processor in a generalpurpose computer, a mobile device, or a server. In some embodiments,these steps may be implemented by a group of processors. The steps beloware described with reference to components described above with regardto system 100 shown in FIG. 1.

The method 800 begins when processor 102 determines a first hapticeffect based in part on the first sensor signal 802. The first sensorsignal comprises data associated with the first user interaction. Theprocessor 102 may rely on programming contained in haptic effectdetermination module 126 to select or determine the haptic effect. Forexample, the processor 102 may access drive signals stored in memory 104and associated with particular haptic effects. As another example, asignal may be generated by accessing a stored algorithm and inputtingparameters associated with an effect. For example, an algorithm mayoutput data for use in generating a drive signal based on amplitude andfrequency parameters. As another example, a haptic signal may comprisedata sent to an actuator to be decoded by the actuator. For instance,the actuator may itself respond to commands specifying parameters suchas amplitude and frequency.

In some embodiments, the haptic effect may be one of a plurality ofavailable textures. For example, the plurality of textures may compriseone or more of the textures of water, grass, ice, metal, sand, gravel,brick, fur, leather, skin, fabric, rubber, leaves, or any otheravailable texture, for example, a texture associated with explosions orfire. In some embodiments, the texture may be associated with a featureof a user interface, such as a widget displayed to the user. Forexample, in one embodiment, a specific texture may be associated with avirtual dial, for example, the texture of sand. Further, in such anembodiment, as the user interacts with the virtual dial, for example, bymodifying the angular rotation of the virtual dial, the processor 102may output a different texture. For example, as the user turns thevirtual dial, the haptic effect may be configured to simulate a changein the coarseness of the sand. Thus, as the user turns the virtual dialin one direction, the user may feel a haptic effect that simulatesgravel, and as the user turns the virtual dial the other direction theuser may feel a haptic effect that simulates the feeling of a powder. Inother embodiments the haptic effect may comprise a vibration or asurface based effect configured to vary the friction the user perceiveswhen interacting with the surface of a touch enabled display or othertouch surface.

Next the processor 102 determines a second haptic effect based in parton the second sensor signal 804. The second sensor signal comprises dataassociated with the second user interaction. The processor 102 may relyon programming contained in haptic effect determination module 126 toselect or determine the haptic effect. For example, the processor 102may access drive signals stored in memory 104 and associated withparticular haptic effects. As another example, a signal may be generatedby accessing a stored algorithm and inputting parameters associated withan effect. For example, an algorithm may output data for use ingenerating a drive signal based on amplitude and frequency parameters.As another example, a haptic signal may comprise data sent to anactuator to be decoded by the actuator. For instance, the actuator mayitself respond to commands specifying parameters such as amplitude andfrequency.

In some embodiments, the haptic effect may be one of a plurality ofavailable textures. For example, the plurality of textures may compriseone or more of the textures of: water, grass, ice, metal, sand, gravel,brick, fur, leather, skin, fabric, rubber, leaves, or any otheravailable texture, for example, a texture associated with explosions orfire. In some embodiments, the texture may be associated with a featureof a user interface, such as a widget displayed to the user. Forexample, in one embodiment, a specific texture may be associated with avirtual dial, for example, the texture of sand. Further, in such anembodiment, as the user interacts with the virtual dial, for example, bymodifying the angular rotation of the virtual dial, the processor 102may output a different texture. For example, as the user turns thevirtual dial, the haptic effect may be configured to simulate a changein the coarseness of the sand. Thus, as the user turns the virtual dialin one direction, the user may feel a haptic effect that simulatesgravel, and as the user turns the virtual dial the other direction theuser may feel a haptic effect that simulates the feeling of a powder. Inother embodiments the haptic effect may comprise a vibration or asurface based effect configured to vary the friction the user perceiveswhen interacting with the surface of a touch enabled display or othertouch surface.

Then the processor 102 determines a third haptic effect based in part onthe first haptic effect and the second haptic effect 806. For example,in some embodiments the processor 102 may determine the most intensehaptic effect and output the third haptic effect as only the mostintense haptic effect. Alternatively, in some embodiments the processor102 may output the haptic effect comprising the highest associatedpriority. For example, each haptic effect may comprise its own priority.In such an embodiment, these priorities may have been assigned by thedesigner or based on user preferences.

In other embodiments, the processor 102 may determine an average of thetwo haptic effects. The processor 102 may then output the third hapticeffect as this average. Further, in some embodiments, the processor 102may determine a superposition of the two haptic effects. Thissuperposition may comprise a weighted combination or weighted average ofthe two effects. For example, processor 102 may assign a weight to eachhaptic effect (e.g., weights of 2, 1, 0.5, 0.25, or 0). The processor102 may then determine a third haptic effect that is the combination ofthe two weighted haptic effects or the average of the two weightedeffects. In some embodiments, these weights may be determined based inpart on, e.g., the user interaction (e.g., the speed of userinteraction, the pressure of user interaction, or the activity of theuser interaction), the haptic output device associated with the hapticeffect, the location associated with the user interaction, the user fromwhich the interaction originated (e.g., if there are two or more usersinteracting with the device), or user defined characteristics associatedwith the haptic effect.

Further, in some embodiments touch surface 116 may receive a third,fourth fifth, or more user interaction, e.g., a multi-touch with manyadditional contacts. Processor 102 may be configured to determine hapticeffects associated with each of these multi-touches and output a signalhaptic effect based on each of these haptic effects as described above.

Then, at step 808, the processor 102 transmits a haptic signalassociated with the third haptic effect to haptic output device 118,which outputs the haptic effect. In some embodiments, processor 102outputs a haptic signal configured to cause haptic output device 118 togenerate the haptic effect. In some embodiments haptic output device 118may comprise traditional actuators such as piezoelectric actuators orelectric motors coupled to touch surface 116 or other components withincomputing device 101. In other embodiments haptic output device 118 maycomprise one or more electrostatic actuators configured to simulatetextures or vary the perceived coefficient of friction on touch surface116 using electrostatic fields.

Advantages of Determining Haptic Effects for Multi-Touch Input

There are numerous advantages of determining haptic effects formulti-touch input. Currently most existing haptic rendering algorithmsare single input, single output. Embodiments of the present disclosureenable these rendering algorithms to be used in a multi-touchenvironment. This may reduce the need for costly redevelopment ofrendering algorithms.

Further, embodiments of the present disclosure enable devices that maycomprise only one haptic output device to still output haptic effectsassociated with multiple user inputs. This enables these devices tooutput more useful and intuitive haptic effects associated withmulti-touch.

Further, in some embodiments, determining haptic effects for multi-touchinput may enable a user to use software and user interfaces moreeffectively. For example, a user may be able to make determinationsregarding available operations in a program without having to visuallyfocus on a display. This may increase overall user satisfaction.

GENERAL CONSIDERATIONS

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process that is depicted as aflow diagram or block diagram. Although each may describe the operationsas a sequential process, many of the operations can be performed inparallel or concurrently. In addition, the order of the operations maybe rearranged. A process may have additional steps not included in thefigure. Furthermore, examples of the methods may be implemented byhardware, software, firmware, middleware, microcode, hardwaredescription languages, or any combination thereof. When implemented insoftware, firmware, middleware, or microcode, the program code or codesegments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bound the scope of the claims.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

Embodiments in accordance with aspects of the present subject matter canbe implemented in digital electronic circuitry, in computer hardware,firmware, software, or in combinations of the preceding. In oneembodiment, a computer may comprise a processor or processors. Theprocessor comprises or has access to a computer-readable medium, such asa random access memory (RAM) coupled to the processor. The processorexecutes computer-executable program instructions stored in memory, suchas executing one or more computer programs including a sensor samplingroutine, selection routines, and other routines to perform the methodsdescribed above.

Such processors may comprise a microprocessor, a digital signalprocessor (DSP), an application-specific integrated circuit (ASIC),field programmable gate arrays (FPGAs), and state machines. Suchprocessors may further comprise programmable electronic devices such asPLCs, programmable interrupt controllers (PICs), programmable logicdevices (PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example tangible computer-readable media, that may storeinstructions that, when executed by the processor, can cause theprocessor to perform the steps described herein as carried out, orassisted, by a processor. Embodiments of computer-readable media maycomprise, but are not limited to, all electronic, optical, magnetic, orother storage devices capable of providing a processor, such as theprocessor in a web server, with computer-readable instructions. Otherexamples of media comprise, but are not limited to, a floppy disk,CD-ROM, magnetic disk, memory chip, ROM, RAM, ASIC, configuredprocessor, all optical media, all magnetic tape or other magnetic media,or any other medium from which a computer processor can read. Also,various other devices may include computer-readable media, such as arouter, private or public network, or other transmission device. Theprocessor, and the processing, described may be in one or morestructures, and may be dispersed through one or more structures. Theprocessor may comprise code for carrying out one or more of the methods(or parts of methods) described herein.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

What is claimed:
 1. A system comprising: a touch-sensitive input deviceconfigured to detect a first user interaction and a second userinteraction, wherein at least part of the first user interaction occursat the same time as the second user interaction; a processor incommunication with the touch-sensitive input device, and configured to:determine a haptic effect based in part on an earlier of the first userinteraction or the second user interaction, wherein the first userinteraction is different from the second user interaction; and transmita haptic signal associated with the haptic effect; and a haptic outputdevice configured to receive the haptic signal and output the hapticeffect.
 2. The system of claim 1, wherein determining the haptic effectfurther comprises: determining a first haptic effect associated with thefirst user interaction and determining a second haptic effect associatedwith the second user interaction.
 3. The system of claim 2, furthercomprising: determining which of the first haptic effect and the secondhaptic effect has higher intensity, which of the first haptic effect andthe second haptic effect is highest priority, or an average of the firstand second haptic effects.
 4. The system of claim 2, further comprisingsuperpositioning the first haptic effect and the second haptic effect byapplying a first weight to the first haptic effect and a second weightto the second haptic effect and combining the two weighted hapticeffects.
 5. The system of claim 4, wherein the haptic effect comprisesan average of the combination of the two weighted haptic effects.
 6. Thesystem of claim 1, wherein determining the haptic effect furthercomprises: determining a most active user interaction by determiningwhich of the first user interaction and the second user interactioncomprises more user movement; and determining the haptic effect based onthe most active user interaction.
 7. The system of claim 1, whereindetermining the haptic effect further comprises: determining a highestpressure user interaction by determining which of the first userinteraction and the second user interaction comprises a higher pressure;and determining the haptic effect based on the highest pressure userinteraction.
 8. The system of claim 1, wherein determining the hapticeffect is based in part on a user preference.
 9. The system of claim 1,wherein the touch-sensitive input device is further configured to detecta third user interaction, and wherein the processor is furtherconfigured to determine the haptic effect based in part on the thirduser interaction.
 10. A method comprising: detecting a first userinteraction; detecting a second user interaction, wherein at least partof the first user interaction occurs at the same time as the second userinteraction; determining a haptic effect based in part on an earlier ofthe first user interaction or the second user interaction, wherein thefirst user interaction is different from the second user interaction;and transmitting a haptic signal associated with the haptic effect to ahaptic output device configured to receive the haptic signal and outputthe haptic effect.
 11. The method of claim 10, wherein determining thehaptic effect comprises: determining a first haptic effect associatedwith the first user interaction and determining a second haptic effectassociated with the second user interaction.
 12. The method of claim 11,further comprising: determining which of the first haptic effect and thesecond haptic effect has higher intensity, which of the first hapticeffect and the second haptic effect is highest priority, or an averageof the first and second haptic effects.
 13. The method of claim 11,further comprising superpositioning the first haptic effect and thesecond haptic effect by applying a first weight to the first hapticeffect and a second weight to the second haptic effect and combining thetwo weighted haptic effects.
 14. The method of claim 13, wherein thehaptic effect comprises an average of the combination of the twoweighted haptic effects.
 15. The method of claim 10, wherein determiningthe haptic effect further comprises: determining a most active userinteraction by determining which of the first user interaction and thesecond user interaction comprises more user movement; and determiningthe haptic effect based on the most active user interaction.
 16. Themethod of claim 10, wherein determining the haptic effect furthercomprises: determining a highest pressure user interaction bydetermining which of the first user interaction and the second userinteraction comprises a higher pressure; and determining the hapticeffect based on the highest pressure user interaction.
 17. The method ofclaim 10, wherein determining the haptic effect is based in part on auser preference.
 18. The method of claim 10, further comprising:transmitting a third sensor signal associated with a third userinteraction; and determining the haptic effect based in part on thethird user interaction.
 19. A non-transitory computer readable mediumcomprising program code, which when executed by a processor isconfigured to cause the processor to: detect a first user interaction;detect a second user interaction, wherein at least part of the firstuser interaction occurs at the same time as the second user interaction;determine a haptic effect based in part on an earlier of the first userinteraction or the second user interaction, wherein the first userinteraction is different from the second user interaction; and transmita haptic signal associated with the haptic effect to a haptic outputdevice configured to receive the haptic signal and output the hapticeffect.
 20. The non-transitory computer readable medium of claim 19,further comprising program code, which when executed by the processor isconfigured to cause the processor to: detect a third user interaction;and determine the haptic effect based in part on the third userinteraction.